QA GUI
Perforce QACソフトウェアには多くのサンプルプロジェクトが用意されています。 これらのサンプルプロジェクトを解析することで、Perforce QACソフトウェアの操作を直感的に学ぶことができます。
Perforce QACプログラムを起動すると、以下の画面が表示されます(使用しているOSによって画面のデザインに若干の違いがありますが、画面の構成および機能に違いはありません)。
Perforce QACのサンプルプロジェクトは、画面右側のパネルに表示されます。コンプライアンスモジュール(例:MISRAコンプライアンスモジュールなど)がインストールされている場合には、そのサンプルプロジェクトも併せて表示されます。 Perforce QAC GUIの2回目以降の使用で、このリストはサンプルプロジェクトではなく、ユーザ自身の更新したプロジェクトが上から順番に列挙されるようになります。
プロジェクトは、画面右の[最近使用したプロジェクト]パネルからダブルクリックをして開く、または、右クリックでコンテキストメニューを開き[このプロジェクトを開く]を選択して開きます。 すると、画面左の[ファイル]パネルに読み込まれます。
[ファイル]パネルを利用してプロジェクトディレクトリの閲覧、プロジェクト内のファイルの表示を行うことができます。
[ファイル]パネルで選択したファイルの解析結果は画面下部の[解析結果一覧]パネルに表示されます。 単一のファイルを選択する場合は、選択したいファイルを左クリックします。 複数のファイルを選択する場合は、[CTRL]キーを押した状態で選択したいファイルを左クリックするか、[SHIFT]キーを押した状態で選択したいファイルの範囲を指定します。 さらに、一つのディレクトリを選択/選択を解除するとそのディレクトリとサブディレクトリ内の全てのファイルも選択/選択を解除されます。
単一のファイルが選択された場合、選択されたファイルの内容は画面中央の[エディタ]に診断の「バブルマーク」(左端)と併せて表示されます(on page 1を参照)。 開かれたファイルは[エディタ]パネルに一連のタブとして表示されます。 あるいは、[解析結果一覧]パネルで、左端の解析結果の重要度を表す色分けされた「バブルマーク」または、メッセージをダブルクリックすることによって、ファイルを開き[エディタ]に表示することができます。
ファイルの内容は編集、保存ができます。
ソースファイルは個別に、あるいはグループごとに解析することができます。 解析には、「ファイルベース解析」と「CMA解析」の2種類があります。
- 「ファイルベース解析」は翻訳単位レベルで 実行され、言語の使用法、データフローおよびレイアウトの妥当性を検証します。
- 「CMA解析」は翻訳単位の境界を横断する形で実行され、定義の重複、互換性のない宣言、使用されない変数の有無などを調べます。
本ドキュメントではファイルベース解析を実行するための手順を解説しますが、CMA解析もファイルベース解析とほぼ同様の手順で実行することができます。
単一のファイルを解析する場合には、[ファイル]パネルから解析したいファイルを右クリックし、右クリックメニューから[選択中のファイルを解析]を選択します。
[解析]ダイアログが開き解析の進捗を表示します(以下を参照)。 解析が完了したら[閉じる]ボタンを押します。
ファイル結果が選択されているので、画面下部の[解析結果一覧]パネルに結果が表示されます。 画面中央の[エディタ]に表示されているコードの左側に解析結果を示す色分けされた「バブルマーク」が表示されています。 [ 解析結果一覧]パネルに表示されているこのファイルの解析結果は、詳しく検証し、必要に応じコラムの見出しをクリックすることで並べ替えができます。
左端の色分けされた「バブルマーク」または、「メッセージコラム」のテキストをダブルクリックすることで、解析結果と関連するコードの行が[エディタ]内で強調表示されます。また、そのファイルが開いていない場合はファイルを表示します。 [エディタ]パネルで当該コードの左にある「バブルマーク」をクリックすると関連するエラーのヘルプへのリンクが表示されます。
診断にサブメッセージがある場合、それらはをクリックして表示するか、
をクリックして非表示にすることができます。あるいは、[解析結果/診断]ツールバーで
および
をクリックすることにより、それらをまとめて展開または折りたたむことができます。
コンプライアンスモジュールを利用している場合には、コードが違反しているルールを「ルール」列において確認することができます。以下の画像では、MISRAコンプライアンスモジュールによって、「MISRA C:2012」のルール3.1に違反していることが指摘されています。
強調表示された[ID]コラムをクリックすると、on page 1Perforce QACのヘルプ画面を独立したウィンドウとして表示することができます。
青で強調表示された別の「ID」または、「ルール」をクリックことで、既に表示されてい るヘルプ画面の内容を更新することができます。 また、[SHIFT] キーを押しながら [ID] または [ルール] をクリックすると、既に開かれているヘルプ画面とは別に新しいヘルプ画面を開き、複数のヘ ルプを同時に見ることができます。
Perforce QACソフトウェアは、左側の[ファイル]パネルで選択されているファイルの解析結果を表示します。 [エディタ]の左端に診断を示す色分けされた「バブルマーク」の付いた解析結果が表示されているので、結果を表示するためにファイルを開く必要はありません。 開かれたファイルは、画面中央のウィンドウに配置されるタブに表示されます。
タブをクリックすることで、任意のファイルを最前面に表示することができます。
以下に示すように、解析が終了したファイルには[ファイル]パネル内で印がつきます。
緑色のチェックアイコンは、解析が正常に終了したことを示します。 この段階でファイルを修正し保存すると、解析結果は「最新ではない」ことになるので時計のアイコンが表示されます。 画像on page 1では、ファイルcma_alloc_2.cxx
が修正され保存されたため、解析結果は「最新ではない」と表されています。
画面左には[ファイル]パネルの他に、2つのパネルがあります。[メッセージレベル]パネルはツリー表示になっており、メッセージレベル内でコンポーネントごとに解析結果をカウントします。[ルールグループ]パネルは、各コンポーネント内でルールグループごとに解析結果を分類しカウントします。
[ルールグループ]パネルの目的は、生成された診断がどのルールに違反しているかを明らかにすることです。 [ルールグループ]ツリーの各レベルの合計数は、そのレベルに含まれる子レベルのメッセージの合計ですが、一意の診断メッセージがのみがカウントされます。例えば、一つのメッセージが子レベルに複数回(同じルール違反が複数のルールグループに存在する)表示された場合、その子レベルの上のレベルの合計レベルには同じメッセージは複数回カウントされず、一回とカウントされます。 結果として、実際のルール違反の総数が診断の総数より多くなる可能性があります。
[メッセージレベル]または、[ルールグループ]パネルでメッセージフィルタを使用することができます。このフィルタは、[解析結果一覧]パネルの結果にも影響します。 メッセージを右クリックし、そのメッセージのみを表示する場合は[選択中の項目のみを表示]または、そのメッセージを非表示にする場合は[選択中の項目を隠す]を選択します。 [メッセージレベル]パネル内のコンポーネントにも同じオプションを使用して、例えば、「qac」または、「qacpp」のメッセージのみを「表示」したり、「非表示」にしたりできます。「ルールグループ」では、例えば、「データフロー解析」のメッセージのみを「表示」したり、「非表示」にしたりできます。 このオプションを組み合わせて、例えば、「qac」の「データフロー解析」にのみ関連した単一メッセージのインスタンス全てを表示することができます。
[解析]メニューで[プロジェクトのファイルベース解析:<プロジェクト名>]を選択することで全てのファイルを一度に解析することができます。 上記の手順を実行すると、プロジェクトに含まれている最新ではないすべてのフ ァイルの解析も実行されます。 on page 1解析の進捗状況は進捗ウィンドウに表示されます。
解析結果は既に述べた方法によって表示することができます。